const imagemin = require("imagemin");
const imageminMozjpeg = require("imagemin-mozjpeg");
const imageminPngquant = require("imagemin-pngquant");

(async () => {
  const files = await imagemin(["1233/images/*.{jpg,png}"], {
    destination: "build/images",
    plugins: [
      imageminMozjpeg(),
      imageminPngquant({
        quality: [0.1, 0.2]
      }),
    ],
  });

  console.log(files);
  //=> [{data: <Buffer 89 50 4e …>, destinationPath: 'build/images/foo.jpg'}, …]
})();

async function compress(input, options = {}) {
  return imagemin(input, {
    plugins: [
      imageminMozjpeg(),
      imageminPngquant({
        // quality: [0.3, 0.5],
        quality: [0.6, 0.8]
      }),
    ],
    ...options
  });
}

async function compressBuffer(buf) {
  return imagemin.buffer(buf, {
    plugins: [
      imageminMozjpeg(),
      imageminPngquant({
        quality: [0.3, 0.5],
      }),
    ],
  });
}

module.exports = {
  compress,
  compressBuffer
}

